using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class logged_Busca_aspx : System.Web.UI.Page
{

    private enum BuscarPor { Pessoas, Artefatos, Comunidades, TodoOSite }
    private ActivUFRJ.Classes.Usuario.Usuario usuario = new ActivUFRJ.Classes.Usuario.Usuario(6);

    protected void Page_Load(object sender, EventArgs e)
    {

        // se o usuario trocou a aba e ainda nao enviou o formulario ...
        if (!IsPostBack)
        {
            CarregarCategorias();
            CarregarInstituicoes();
            CarregarFormacoes();
            CarregarFormatos();
        }

        try
        {
            int viewIndex = Convert.ToInt32(Request.QueryString["categ"]);
            switch (viewIndex)
            {
                case 0:
                    MultiView1.ActiveViewIndex = 0;
                    break;
                case 1:
                    MultiView1.ActiveViewIndex = 1;
                    break;
                case 2:
                    MultiView1.ActiveViewIndex = 2;
                    break;
                case 3:
                    MultiView1.ActiveViewIndex = 3;
                    break;
                default:
                    MultiView1.ActiveViewIndex = 0;
                    break;

            }
        }
        catch { MultiView1.ActiveViewIndex = 0; }
    }

    private void CarregarFormatos()
    {

        cbFormatoArtefato.DataSource = ActivUFRJ.Classes.Geral.MgrFormatoArtefato.GetListaFormatosDT();
        cbFormatoArtefato.DataTextField = "AF_Descricao";
        cbFormatoArtefato.DataValueField = "AF_ID";
        cbFormatoArtefato.DataBind();
        cbFormatoArtefato.Items.Insert(0, new ListItem("", "0"));
        cbFormatoArtefato.SelectedIndex = 0;

        cbFormatoArquivoComunidade.DataSource = ActivUFRJ.Classes.Geral.MgrFormatoArtefato.GetListaFormatosDT();
        cbFormatoArquivoComunidade.DataTextField = "AF_Descricao";
        cbFormatoArquivoComunidade.DataValueField = "AF_ID";
        cbFormatoArquivoComunidade.DataBind();
        cbFormatoArquivoComunidade.Items.Insert(0, new ListItem("", "0"));
        cbFormatoArquivoComunidade.SelectedIndex = 0;
    }

    private void CarregarFormacoes()
    {
        cbFormacaoPessoa.DataSource = ActivUFRJ.Classes.Geral.MgrFormacao.GetListaFormacoesDT();
        cbFormacaoPessoa.DataTextField = "FA_Descricao";
        cbFormacaoPessoa.DataValueField = "FA_ID";
        cbFormacaoPessoa.DataBind();
        cbFormacaoPessoa.Items.Insert(0, new ListItem("", "0"));
        cbFormacaoPessoa.SelectedIndex = 0;
    }

    private void CarregarInstituicoes()
    {
        cbInstituicaoPessoa.DataSource = ActivUFRJ.Classes.Geral.MgrInstituicao.GetListaInstituicoesDT();
        cbInstituicaoPessoa.DataTextField = "INS_Descricao";
        cbInstituicaoPessoa.DataValueField = "INS_ID";
        cbInstituicaoPessoa.DataBind();
        cbInstituicaoPessoa.Items.Insert(0, new ListItem("","0"));
        cbInstituicaoPessoa.SelectedIndex = 0;
    }

    /// <summary>
    /// carrega as categorias, areas de interesse a area de trabalho nos combos
    /// </summary>
    private void CarregarCategorias()
    {
        // 1. Area de trabalho e Areas de Interesse e Categoria(sao a msm coisa)

        cbAreaTrabalhoUsuario.DataSource = ActivUFRJ.Classes.Geral.MgrAreaInteresse.GetAreasInteresseDT();
        cbAreaTrabalhoUsuario.DataTextField = "AI_Descricao";
        cbAreaTrabalhoUsuario.DataValueField = "AI_ID";
        cbAreaTrabalhoUsuario.DataBind();
        cbAreaTrabalhoUsuario.Items.Insert(0, new ListItem("", "0"));
        cbAreaTrabalhoUsuario.SelectedIndex = 0;

        cbInteresseUsuario.DataSource = ActivUFRJ.Classes.Geral.MgrAreaInteresse.GetAreasInteresseDT();
        cbInteresseUsuario.DataTextField = "AI_Descricao";
        cbInteresseUsuario.DataValueField = "AI_ID";
        cbInteresseUsuario.DataBind();
        cbInteresseUsuario.Items.Insert(0, new ListItem("", "0"));
        cbInteresseUsuario.SelectedIndex = 0;

        cbCategoriaArtefato.DataSource = ActivUFRJ.Classes.Geral.MgrAreaInteresse.GetAreasInteresseDT();
        cbCategoriaArtefato.DataTextField = "AI_Descricao";
        cbCategoriaArtefato.DataValueField = "AI_ID";
        cbCategoriaArtefato.DataBind();
        cbCategoriaArtefato.Items.Insert(0, new ListItem("", "0"));
        cbCategoriaArtefato.SelectedIndex = 0;


        cbCategoriaComunidade.DataSource = ActivUFRJ.Classes.Geral.MgrAreaInteresse.GetAreasInteresseDT();
        cbCategoriaComunidade.DataTextField = "AI_Descricao";
        cbCategoriaComunidade.DataValueField = "AI_ID";
        cbCategoriaComunidade.DataBind();
        cbCategoriaComunidade.Items.Insert(0, new ListItem("", "0"));
        cbCategoriaComunidade.SelectedIndex = 0;


        cbCategoriaTodoSite.DataSource = ActivUFRJ.Classes.Geral.MgrAreaInteresse.GetAreasInteresseDT();
        cbCategoriaTodoSite.DataTextField = "AI_Descricao";
        cbCategoriaTodoSite.DataValueField = "AI_ID";
        cbCategoriaTodoSite.DataBind();
        cbCategoriaTodoSite.Items.Insert(0, new ListItem("", "0"));
        cbCategoriaTodoSite.SelectedIndex = 0;

    }

    protected void lbEstatisticas01_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 1;
    }
    protected void lbVersoes01_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 2;
    }
    protected void lbUltimasNoticias02_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 0;
    }
    protected void lbEstatisticas02_Click(object sender, EventArgs e)
    {

    }
    protected void lbVersoes02_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 2;
    }
    protected void lbUltimasNoticias03_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 0;
    }
    protected void lbEstatisticas03_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 1;
    }
    protected void lbRecomendacoes01_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 3;
    }
    protected void lbRecomendacoes02_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 3;
    }
    protected void lbRecomendacoes03_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 3;
    }
    protected void lbVersoes04_Click(object sender, EventArgs e)
    {
        MultiView1.ActiveViewIndex = 2;
    }

    /// <summary>
    /// monto os parametros de busca para pessoa
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnBuscarPessoas_Click(object sender, EventArgs e)
    {
        ActivUFRJ.Classes.Busca.ParametrosPessoa pp = new ActivUFRJ.Classes.Busca.ParametrosPessoa();
        pp.Nome = tbNomePessoa.Text;
        
        if (Convert.ToInt32(cbAreaTrabalhoUsuario.SelectedValue) > 0)
        {
            pp.AreaTrabalho = new ActivUFRJ.Classes.Usuario.AreaTrabalho();
            pp.AreaTrabalho.ID = Convert.ToInt32(cbAreaTrabalhoUsuario.SelectedValue);
        }

        if (Convert.ToInt32(cbFormacaoPessoa.SelectedValue) > 0)
        {
            pp.FormacaoAcademica = new ActivUFRJ.Classes.Geral.FormacaoAcademica();
            pp.FormacaoAcademica.ID = Convert.ToInt32(cbFormacaoPessoa.SelectedValue);
        }
        
        if (Convert.ToInt32(cbInstituicaoPessoa.SelectedValue) > 0)
        {
            pp.Instituicao = new ActivUFRJ.Classes.Geral.Instituicao();
            pp.Instituicao.ID = Convert.ToInt32(cbInstituicaoPessoa.SelectedValue);
        }

        if (Convert.ToInt32(cbInteresseUsuario.SelectedValue) > 0)
        {
            pp.AreaInteresse = new ActivUFRJ.Classes.Usuario.AreaTrabalho();
            pp.AreaInteresse.ID = Convert.ToInt32(cbInteresseUsuario.SelectedValue);
        }

        Context.Items.Add("TipoBusca", ActivUFRJ.Classes.Busca.TiposBusca.BuscaPorUsuario);
        Context.Items.Add("Parametros", pp);
        Server.Transfer("ResultadoBusca.aspx");
    }


    /// <summary>
    /// monto os parametros de busca para artefato
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnBuscarArtefatos_Click(object sender, EventArgs e)
    {

        ActivUFRJ.Classes.Busca.ParametrosArtefato pa = new ActivUFRJ.Classes.Busca.ParametrosArtefato();
        pa.Nome = tbNomeArtefato.Text;
        pa.IdCategoria = Convert.ToInt32(cbCategoriaArtefato.SelectedValue);
        pa.IdFormato = Convert.ToInt32(cbFormatoArtefato.SelectedValue);

        switch (cbAtualizacaoArtefato.SelectedValue.ToString())
        {
            case ">":
                pa.ParametroDataAtualizacao = ActivUFRJ.Classes.Busca.ParametroData.MaiorQ;
                break;
            case "<":
                pa.ParametroDataAtualizacao = ActivUFRJ.Classes.Busca.ParametroData.MenorQ;
                break;
            case "=":
                pa.ParametroDataAtualizacao = ActivUFRJ.Classes.Busca.ParametroData.IgualA;
                break;
            case "<>":
                pa.ParametroDataAtualizacao = ActivUFRJ.Classes.Busca.ParametroData.DiferenteDe;
                break;
            default:
                pa.ParametroDataAtualizacao = ActivUFRJ.Classes.Busca.ParametroData.Qualquer;
                break;
        }
        try
        {
            pa.DataAtualizacao = Convert.ToDateTime(tbDataAtualizacaoArtefato.Text);
        }
        catch { pa.ParametroDataAtualizacao = ActivUFRJ.Classes.Busca.ParametroData.Qualquer; }

        Context.Items.Add("TipoBusca", ActivUFRJ.Classes.Busca.TiposBusca.BuscaPorArtefato);
        Context.Items.Add("Parametros", pa);
        Server.Transfer("ResultadoBusca.aspx");

    }

    protected void btnBuscarComunidades_Click(object sender, EventArgs e)
    {
        ActivUFRJ.Classes.Busca.ParametrosComunidade pc = new ActivUFRJ.Classes.Busca.ParametrosComunidade();
        pc.Nome = tbNomeComunidade.Text;
        pc.IdCategoria = Convert.ToInt32(cbCategoriaComunidade.SelectedValue);
        pc.IdFormato = Convert.ToInt32(cbFormatoArquivoComunidade.SelectedValue);

        switch (cbDataCriacaoComunidade.SelectedValue.ToString())
        {
            case ">":
                pc.ParametroDataCriacao = ActivUFRJ.Classes.Busca.ParametroData.MaiorQ;
                break;
            case "<":
                pc.ParametroDataCriacao = ActivUFRJ.Classes.Busca.ParametroData.MenorQ;
                break;
            case "=":
                pc.ParametroDataCriacao = ActivUFRJ.Classes.Busca.ParametroData.IgualA;
                break;
            case "<>":
                pc.ParametroDataCriacao = ActivUFRJ.Classes.Busca.ParametroData.DiferenteDe;
                break;
            default:
                pc.ParametroDataCriacao = ActivUFRJ.Classes.Busca.ParametroData.Qualquer;
                break;
        }
        try
        {
            pc.DataAtualizacao = Convert.ToDateTime(tbDataCriacaoComunidade.Text);
        }
        catch { pc.ParametroDataCriacao = ActivUFRJ.Classes.Busca.ParametroData.Qualquer; }

        Context.Items.Add("TipoBusca", ActivUFRJ.Classes.Busca.TiposBusca.BuscaPorComunidade);
        Context.Items.Add("Parametros", pc);
        Server.Transfer("ResultadoBusca.aspx");
    }

    protected void btnBuscarTodoSite_Click(object sender, EventArgs e)
    {
        ActivUFRJ.Classes.Busca.ParametrosTodoSite pts = new ActivUFRJ.Classes.Busca.ParametrosTodoSite();

        pts.Nome = tbExpressaoTodoSite.Text;
        pts.IdCategoria = Convert.ToInt32(cbCategoriaTodoSite.SelectedValue);

        Context.Items.Add("TipoBusca", ActivUFRJ.Classes.Busca.TiposBusca.BuscaEmTodoOSite);
        Context.Items.Add("Parametros", pts);
        Server.Transfer("ResultadoBusca.aspx");
    }
}
